#ifndef VECTOR2_H
#define VECTOR2_H
#include <QVector2D>
#include <QStringList>

class Vector2 : public QVector2D {
public:
    /**
     * @brief 构造函数
     */
    Vector2(): QVector2D() {}

    /**
     * @brief 构造函数
     * @param x
     * @param y
     */
    Vector2(float x, float y): QVector2D(x, y) {}

    /**
     * @brief operator =
     * @param value
     * @return
     */
    Vector2& operator = (const QVector2D& value) {
        setX(value.x());
        setY(value.y());
        return *this;
    }

    /**
     * @brief 解析字符串
     * @param value
     */
    void Parse(const QString& value)
    {
        QStringList val = value.split(',');
        if (val.length() != 2) return;
        setX(val[0].toFloat());
        setY(val[1].toFloat());
    }

    /**
     * @brief 重载 ToString
     * @return
     */
    QString ToString() const
    {
        return QString("%1,%2").arg(x()).arg(y());
    }
};

#endif // VECTOR2_H
